package jframe.action;

import jframe.base.action.BaseAction;
import jframe.common.SessionConstants;
import jframe.common.SessionHelper;
import jframe.common.SessionModel;
import jframe.entity.bean.User;
import jframe.service.UserService;
import jframe.utils.IpUtil;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;

/**
 * @描述:<p> </p>
 *
 * @作者: 叶平平(yepp)
 *
 * @时间: 2012-1-6 下午08:07:48
 */
@SuppressWarnings("serial")
public class LoginAction extends BaseAction{
	private String username;
	private String password;

	/**
	 * 用户Service
	 */
	@Autowired
	@Qualifier("userService")
	private UserService userService;
	/**
	 * 功能描述：单点登录,还为实现
	 *
	 * @author  叶平平(ypp)
	 * <p>创建日期 ：2012-1-6 下午04:05:51</p>
	 *
	 * @return
	 *
	 * <p>修改历史 ：(修改人，修改时间，修改原因/内容)</p>
	 */
	public String ssoLogin(){
		this.doLogin();
		this.outJsonString("{success:true}");
		return null;
	}
	/**
	 * 功能描述：内部用户登录
	 *
	 * @author  叶平平(ypp)
	 * <p>创建日期 ：2012-1-6 下午04:04:08</p>
	 *
	 * @return
	 *
	 * <p>修改历史 ：(修改人，修改时间，修改原因/内容)</p>
	 */
	public String login(){
		this.doLogin();
		this.outJsonString("{success:true}");
		return null;
	}
	/**
	 * 功能描述：系统登陆验证
	 *
	 * @author  叶平平(ypp)
	 * <p>创建日期 ：2012-1-6 下午04:04:57</p>
	 *
	 *
	 * <p>修改历史 ：(修改人，修改时间，修改原因/内容)</p>
	 */
	private void doLogin(){
		//做数据验证，如用户名，密码，验证码....
		User user = this.userService.getUser(username);
		
		SessionHelper sessionHelper = new SessionHelper();
		//清空登陆用户信息
		sessionHelper.resetSessionInfo();
		//设置登陆用户信息
		sessionHelper.setSessionObject(SessionConstants.USER, user);
		
		
		SessionModel sessionModel = new SessionModel();
			sessionModel.setUserId(user.getId());
			sessionModel.setSessionId(this.getRequest().getRequestedSessionId());
			sessionModel.setLoginIP(IpUtil.getIpAddrByRequest(this.getRequest()));
			sessionModel.setLoginMAC("loginMAC");
			sessionModel.setLoginComputerName("loginComputerName");
		sessionHelper.addSessionInfo(sessionModel);
	}
	
	/**
	 * 功能描述：用户退出登陆
	 *
	 * @author  叶平平(ypp)
	 * <p>创建日期 ：2012-1-6 下午04:03:54</p>
	 *
	 * @return
	 *
	 * <p>修改历史 ：(修改人，修改时间，修改原因/内容)</p>
	 */
	public String logout(){
		this.doLogout();
		this.outJsonString("{success:true}");
		return null;
	}
	
	private void doLogout(){
		SessionHelper sessionHelper = new SessionHelper();
		sessionHelper.resetSessionInfo();
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	
	
}
